<!-- HTML header for doxygen 1.8.3.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>AngelScript: asITypeInfo Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="test/javascript" src="touch.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="aslogo_small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">AngelScript
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classas_i_type_info.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="classas_i_type_info-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">asITypeInfo Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>The interface for describing types This interface is used to describe the types in the script engine.  
 <a href="classas_i_type_info.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Miscellaneous</div></td></tr>
<tr class="memitem:abafbb3a12cbd94f56a4f3c1739fd6ada"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_engine.html">asIScriptEngine</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#abafbb3a12cbd94f56a4f3c1739fd6ada">GetEngine</a> () const =0</td></tr>
<tr class="memdesc:abafbb3a12cbd94f56a4f3c1739fd6ada"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the script engine.  <a href="#abafbb3a12cbd94f56a4f3c1739fd6ada">More...</a><br/></td></tr>
<tr class="separator:abafbb3a12cbd94f56a4f3c1739fd6ada"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa181c094c192e86299b394ebcfa68760"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#aa181c094c192e86299b394ebcfa68760">GetConfigGroup</a> () const =0</td></tr>
<tr class="memdesc:aa181c094c192e86299b394ebcfa68760"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the config group in which the type was registered.  <a href="#aa181c094c192e86299b394ebcfa68760">More...</a><br/></td></tr>
<tr class="separator:aa181c094c192e86299b394ebcfa68760"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a849e5890b225717b243c73e3d4f38204"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#a5428f0c940201e5f3bbb28304aeb81bc">asDWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a849e5890b225717b243c73e3d4f38204">GetAccessMask</a> () const =0</td></tr>
<tr class="memdesc:a849e5890b225717b243c73e3d4f38204"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the access mask for this type.  <a href="#a849e5890b225717b243c73e3d4f38204">More...</a><br/></td></tr>
<tr class="separator:a849e5890b225717b243c73e3d4f38204"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e08d6c6ee1957c421bb297f94a81d54"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_module.html">asIScriptModule</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a3e08d6c6ee1957c421bb297f94a81d54">GetModule</a> () const =0</td></tr>
<tr class="memdesc:a3e08d6c6ee1957c421bb297f94a81d54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the module where the type is declared.  <a href="#a3e08d6c6ee1957c421bb297f94a81d54">More...</a><br/></td></tr>
<tr class="separator:a3e08d6c6ee1957c421bb297f94a81d54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Memory management</div></td></tr>
<tr class="memitem:a532069932de1f584ab52e4c2afacf95e"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a532069932de1f584ab52e4c2afacf95e">AddRef</a> () const =0</td></tr>
<tr class="memdesc:a532069932de1f584ab52e4c2afacf95e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increases the reference counter.  <a href="#a532069932de1f584ab52e4c2afacf95e">More...</a><br/></td></tr>
<tr class="separator:a532069932de1f584ab52e4c2afacf95e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73b9059dc335b6fde8c7bbf4b1b95914"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a73b9059dc335b6fde8c7bbf4b1b95914">Release</a> () const =0</td></tr>
<tr class="memdesc:a73b9059dc335b6fde8c7bbf4b1b95914"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrease reference counter.  <a href="#a73b9059dc335b6fde8c7bbf4b1b95914">More...</a><br/></td></tr>
<tr class="separator:a73b9059dc335b6fde8c7bbf4b1b95914"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Type info</div></td></tr>
<tr class="memitem:a49f83d3a9158331029324bfbe9ae46a8"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a49f83d3a9158331029324bfbe9ae46a8">GetName</a> () const =0</td></tr>
<tr class="memdesc:a49f83d3a9158331029324bfbe9ae46a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a temporary pointer to the name of the datatype.  <a href="#a49f83d3a9158331029324bfbe9ae46a8">More...</a><br/></td></tr>
<tr class="separator:a49f83d3a9158331029324bfbe9ae46a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90b16019d2569d6c721130f3049786a2"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a90b16019d2569d6c721130f3049786a2">GetNamespace</a> () const =0</td></tr>
<tr class="memdesc:a90b16019d2569d6c721130f3049786a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the namespace of the type.  <a href="#a90b16019d2569d6c721130f3049786a2">More...</a><br/></td></tr>
<tr class="separator:a90b16019d2569d6c721130f3049786a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8722ecc6b7e47491cdb6e442a3bf1ba2"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_type_info.html">asITypeInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a8722ecc6b7e47491cdb6e442a3bf1ba2">GetBaseType</a> () const =0</td></tr>
<tr class="memdesc:a8722ecc6b7e47491cdb6e442a3bf1ba2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object type that this type derives from.  <a href="#a8722ecc6b7e47491cdb6e442a3bf1ba2">More...</a><br/></td></tr>
<tr class="separator:a8722ecc6b7e47491cdb6e442a3bf1ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ce24b7a0ecd27bb7e34f1fa58c08d29"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a4ce24b7a0ecd27bb7e34f1fa58c08d29">DerivesFrom</a> (const <a class="el" href="classas_i_type_info.html">asITypeInfo</a> *objType) const =0</td></tr>
<tr class="memdesc:a4ce24b7a0ecd27bb7e34f1fa58c08d29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the type inherits directly or indirectly from the informed type.  <a href="#a4ce24b7a0ecd27bb7e34f1fa58c08d29">More...</a><br/></td></tr>
<tr class="separator:a4ce24b7a0ecd27bb7e34f1fa58c08d29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a068900ec359ff7fc2ee59a938ffe20ab"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#a5428f0c940201e5f3bbb28304aeb81bc">asDWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a068900ec359ff7fc2ee59a938ffe20ab">GetFlags</a> () const =0</td></tr>
<tr class="memdesc:a068900ec359ff7fc2ee59a938ffe20ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the type flags.  <a href="#a068900ec359ff7fc2ee59a938ffe20ab">More...</a><br/></td></tr>
<tr class="separator:a068900ec359ff7fc2ee59a938ffe20ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad965398e393144e87c0436ef865b9b6d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#ad965398e393144e87c0436ef865b9b6d">GetSize</a> () const =0</td></tr>
<tr class="memdesc:ad965398e393144e87c0436ef865b9b6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size of the object type.  <a href="#ad965398e393144e87c0436ef865b9b6d">More...</a><br/></td></tr>
<tr class="separator:ad965398e393144e87c0436ef865b9b6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06698aa9dcc6dc315ec2651fc70dbe19"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a06698aa9dcc6dc315ec2651fc70dbe19">GetTypeId</a> () const =0</td></tr>
<tr class="memdesc:a06698aa9dcc6dc315ec2651fc70dbe19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the type id for the object type.  <a href="#a06698aa9dcc6dc315ec2651fc70dbe19">More...</a><br/></td></tr>
<tr class="separator:a06698aa9dcc6dc315ec2651fc70dbe19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1a56809ce5c340364ecd8beac508eb4"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#aa1a56809ce5c340364ecd8beac508eb4">GetSubTypeId</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> subTypeIndex=0) const =0</td></tr>
<tr class="memdesc:aa1a56809ce5c340364ecd8beac508eb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the type id of the template sub type.  <a href="#aa1a56809ce5c340364ecd8beac508eb4">More...</a><br/></td></tr>
<tr class="separator:aa1a56809ce5c340364ecd8beac508eb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e947504f268c7f0e1c26973dd7d3837"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_type_info.html">asITypeInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a8e947504f268c7f0e1c26973dd7d3837">GetSubType</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> subTypeIndex=0) const =0</td></tr>
<tr class="memdesc:a8e947504f268c7f0e1c26973dd7d3837"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the template subtype, in case it is an object type.  <a href="#a8e947504f268c7f0e1c26973dd7d3837">More...</a><br/></td></tr>
<tr class="separator:a8e947504f268c7f0e1c26973dd7d3837"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1657d5094afa550c93d8cc74c216c3c6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a1657d5094afa550c93d8cc74c216c3c6">GetSubTypeCount</a> () const =0</td></tr>
<tr class="memdesc:a1657d5094afa550c93d8cc74c216c3c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of template sub types.  <a href="#a1657d5094afa550c93d8cc74c216c3c6">More...</a><br/></td></tr>
<tr class="separator:a1657d5094afa550c93d8cc74c216c3c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Interfaces</div></td></tr>
<tr class="memitem:a47a4bdc2462b38a5659c3cb96e61c649"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a47a4bdc2462b38a5659c3cb96e61c649">GetInterfaceCount</a> () const =0</td></tr>
<tr class="memdesc:a47a4bdc2462b38a5659c3cb96e61c649"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of interfaces implemented.  <a href="#a47a4bdc2462b38a5659c3cb96e61c649">More...</a><br/></td></tr>
<tr class="separator:a47a4bdc2462b38a5659c3cb96e61c649"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a320141f6c331a9e49334de2576c725f7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_type_info.html">asITypeInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a320141f6c331a9e49334de2576c725f7">GetInterface</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index) const =0</td></tr>
<tr class="memdesc:a320141f6c331a9e49334de2576c725f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a temporary pointer to the specified interface or null if none are found.  <a href="#a320141f6c331a9e49334de2576c725f7">More...</a><br/></td></tr>
<tr class="separator:a320141f6c331a9e49334de2576c725f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19bacd881681ee398de95a076f427726"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a19bacd881681ee398de95a076f427726">Implements</a> (const <a class="el" href="classas_i_type_info.html">asITypeInfo</a> *objType) const =0</td></tr>
<tr class="memdesc:a19bacd881681ee398de95a076f427726"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the type implements the informed interface type.  <a href="#a19bacd881681ee398de95a076f427726">More...</a><br/></td></tr>
<tr class="separator:a19bacd881681ee398de95a076f427726"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Factories</div></td></tr>
<tr class="memitem:a22cb802db08d6f464f6ee12337390d12"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a22cb802db08d6f464f6ee12337390d12">GetFactoryCount</a> () const =0</td></tr>
<tr class="memdesc:a22cb802db08d6f464f6ee12337390d12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of factory functions for the object type.  <a href="#a22cb802db08d6f464f6ee12337390d12">More...</a><br/></td></tr>
<tr class="separator:a22cb802db08d6f464f6ee12337390d12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a8b52fefd309102142ba74621d35714"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a6a8b52fefd309102142ba74621d35714">GetFactoryByIndex</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index) const =0</td></tr>
<tr class="memdesc:a6a8b52fefd309102142ba74621d35714"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the factory function by the index.  <a href="#a6a8b52fefd309102142ba74621d35714">More...</a><br/></td></tr>
<tr class="separator:a6a8b52fefd309102142ba74621d35714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca1e08cd395231d30ad78a7ca3fea142"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#aca1e08cd395231d30ad78a7ca3fea142">GetFactoryByDecl</a> (const char *decl) const =0</td></tr>
<tr class="memdesc:aca1e08cd395231d30ad78a7ca3fea142"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the factory function by the declaration.  <a href="#aca1e08cd395231d30ad78a7ca3fea142">More...</a><br/></td></tr>
<tr class="separator:aca1e08cd395231d30ad78a7ca3fea142"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Methods</div></td></tr>
<tr class="memitem:a50877d3602e460e784df4f611ae6f360"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a50877d3602e460e784df4f611ae6f360">GetMethodCount</a> () const =0</td></tr>
<tr class="memdesc:a50877d3602e460e784df4f611ae6f360"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of methods for the object type.  <a href="#a50877d3602e460e784df4f611ae6f360">More...</a><br/></td></tr>
<tr class="separator:a50877d3602e460e784df4f611ae6f360"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a235262cb0bacaf1f160e5ac5156db4e8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a235262cb0bacaf1f160e5ac5156db4e8">GetMethodByIndex</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index, bool getVirtual=true) const =0</td></tr>
<tr class="memdesc:a235262cb0bacaf1f160e5ac5156db4e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the method by index.  <a href="#a235262cb0bacaf1f160e5ac5156db4e8">More...</a><br/></td></tr>
<tr class="separator:a235262cb0bacaf1f160e5ac5156db4e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3febbb10e7e85425f0960aad892f9b8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#af3febbb10e7e85425f0960aad892f9b8">GetMethodByName</a> (const char *name, bool getVirtual=true) const =0</td></tr>
<tr class="memdesc:af3febbb10e7e85425f0960aad892f9b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the method by name.  <a href="#af3febbb10e7e85425f0960aad892f9b8">More...</a><br/></td></tr>
<tr class="separator:af3febbb10e7e85425f0960aad892f9b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80c61bb4d018647561ce3af24fedf65b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a80c61bb4d018647561ce3af24fedf65b">GetMethodByDecl</a> (const char *decl, bool getVirtual=true) const =0</td></tr>
<tr class="memdesc:a80c61bb4d018647561ce3af24fedf65b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the method by declaration.  <a href="#a80c61bb4d018647561ce3af24fedf65b">More...</a><br/></td></tr>
<tr class="separator:a80c61bb4d018647561ce3af24fedf65b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Properties</div></td></tr>
<tr class="memitem:a01d086e1bb97aa56a7b128c00c174ac6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a01d086e1bb97aa56a7b128c00c174ac6">GetPropertyCount</a> () const =0</td></tr>
<tr class="memdesc:a01d086e1bb97aa56a7b128c00c174ac6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of properties that the object contains.  <a href="#a01d086e1bb97aa56a7b128c00c174ac6">More...</a><br/></td></tr>
<tr class="separator:a01d086e1bb97aa56a7b128c00c174ac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99667684c3465389bc9ae08dfdcd8ab9"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a99667684c3465389bc9ae08dfdcd8ab9">GetProperty</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index, const char **name, int *typeId=0, bool *isPrivate=0, bool *isProtected=0, int *offset=0, bool *isReference=0, <a class="el" href="angelscript_8h.html#a5428f0c940201e5f3bbb28304aeb81bc">asDWORD</a> *accessMask=0) const =0</td></tr>
<tr class="memdesc:a99667684c3465389bc9ae08dfdcd8ab9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the attributes of the property.  <a href="#a99667684c3465389bc9ae08dfdcd8ab9">More...</a><br/></td></tr>
<tr class="separator:a99667684c3465389bc9ae08dfdcd8ab9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e6916f51f09970d268378aef9601349"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a9e6916f51f09970d268378aef9601349">GetPropertyDeclaration</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index, bool includeNamespace=false) const =0</td></tr>
<tr class="memdesc:a9e6916f51f09970d268378aef9601349"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the declaration of the property.  <a href="#a9e6916f51f09970d268378aef9601349">More...</a><br/></td></tr>
<tr class="separator:a9e6916f51f09970d268378aef9601349"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Behaviours</div></td></tr>
<tr class="memitem:ad7c3c757cc99df4d40c6b3b44896cb96"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#ad7c3c757cc99df4d40c6b3b44896cb96">GetBehaviourCount</a> () const =0</td></tr>
<tr class="memdesc:ad7c3c757cc99df4d40c6b3b44896cb96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of behaviours.  <a href="#ad7c3c757cc99df4d40c6b3b44896cb96">More...</a><br/></td></tr>
<tr class="separator:ad7c3c757cc99df4d40c6b3b44896cb96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae91a1b2080e76a0dcad8106436728314"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#ae91a1b2080e76a0dcad8106436728314">GetBehaviourByIndex</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index, <a class="el" href="angelscript_8h.html#a7e38df5b10ec8cbf2a688f1d114097c5">asEBehaviours</a> *outBehaviour) const =0</td></tr>
<tr class="memdesc:ae91a1b2080e76a0dcad8106436728314"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the function and type of the behaviour.  <a href="#ae91a1b2080e76a0dcad8106436728314">More...</a><br/></td></tr>
<tr class="separator:ae91a1b2080e76a0dcad8106436728314"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Child types</div></td></tr>
<tr class="memitem:aa9b5a0281ff01d448e55cb10e42ba340"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#aa9b5a0281ff01d448e55cb10e42ba340">GetChildFuncdefCount</a> () const =0</td></tr>
<tr class="memdesc:aa9b5a0281ff01d448e55cb10e42ba340"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of child funcdefs declared in the class.  <a href="#aa9b5a0281ff01d448e55cb10e42ba340">More...</a><br/></td></tr>
<tr class="separator:aa9b5a0281ff01d448e55cb10e42ba340"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01fe2f0b68614246a63e52cada374b69"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_type_info.html">asITypeInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a01fe2f0b68614246a63e52cada374b69">GetChildFuncdef</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index) const =0</td></tr>
<tr class="memdesc:a01fe2f0b68614246a63e52cada374b69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a child funcdef by index.  <a href="#a01fe2f0b68614246a63e52cada374b69">More...</a><br/></td></tr>
<tr class="separator:a01fe2f0b68614246a63e52cada374b69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2836268d01f3a4424263190b57d9b04"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_type_info.html">asITypeInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#aa2836268d01f3a4424263190b57d9b04">GetParentType</a> () const =0</td></tr>
<tr class="memdesc:aa2836268d01f3a4424263190b57d9b04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the parent type if this is a child type.  <a href="#aa2836268d01f3a4424263190b57d9b04">More...</a><br/></td></tr>
<tr class="separator:aa2836268d01f3a4424263190b57d9b04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Enums</div></td></tr>
<tr class="memitem:abe22697bab6560c30c9b613187d6b4d7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#abe22697bab6560c30c9b613187d6b4d7">GetEnumValueCount</a> () const =0</td></tr>
<tr class="memdesc:abe22697bab6560c30c9b613187d6b4d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of values defined for the enum type.  <a href="#abe22697bab6560c30c9b613187d6b4d7">More...</a><br/></td></tr>
<tr class="separator:abe22697bab6560c30c9b613187d6b4d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaece7c2106dbced04436b52515f1f7ac"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#aaece7c2106dbced04436b52515f1f7ac">GetEnumValueByIndex</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index, int *outValue) const =0</td></tr>
<tr class="memdesc:aaece7c2106dbced04436b52515f1f7ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name and value of the enum value for the enum type.  <a href="#aaece7c2106dbced04436b52515f1f7ac">More...</a><br/></td></tr>
<tr class="separator:aaece7c2106dbced04436b52515f1f7ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Typedef</div></td></tr>
<tr class="memitem:aca9edb046026db68d255e226dd419b3a"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#aca9edb046026db68d255e226dd419b3a">GetTypedefTypeId</a> () const =0</td></tr>
<tr class="memdesc:aca9edb046026db68d255e226dd419b3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the type id that the typedef represents.  <a href="#aca9edb046026db68d255e226dd419b3a">More...</a><br/></td></tr>
<tr class="separator:aca9edb046026db68d255e226dd419b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Funcdef</div></td></tr>
<tr class="memitem:abf4e686097f0c485e6dcd330fe47f91e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#abf4e686097f0c485e6dcd330fe47f91e">GetFuncdefSignature</a> () const =0</td></tr>
<tr class="memdesc:abf4e686097f0c485e6dcd330fe47f91e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the function description for the funcdef type.  <a href="#abf4e686097f0c485e6dcd330fe47f91e">More...</a><br/></td></tr>
<tr class="separator:abf4e686097f0c485e6dcd330fe47f91e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">User data</div></td></tr>
<tr class="memitem:a5e8ea071f1c1f3b7c6dfc1950bec73f4"><td class="memItemLeft" align="right" valign="top">virtual void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a5e8ea071f1c1f3b7c6dfc1950bec73f4">SetUserData</a> (void *data, <a class="el" href="angelscript_8h.html#a76fc6994aba7ff6c685a62c273c057e3">asPWORD</a> type=0)=0</td></tr>
<tr class="memdesc:a5e8ea071f1c1f3b7c6dfc1950bec73f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register the memory address of some user data.  <a href="#a5e8ea071f1c1f3b7c6dfc1950bec73f4">More...</a><br/></td></tr>
<tr class="separator:a5e8ea071f1c1f3b7c6dfc1950bec73f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80b01b2ceadfaf91cc34988033a1598c"><td class="memItemLeft" align="right" valign="top">virtual void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_type_info.html#a80b01b2ceadfaf91cc34988033a1598c">GetUserData</a> (<a class="el" href="angelscript_8h.html#a76fc6994aba7ff6c685a62c273c057e3">asPWORD</a> type=0) const =0</td></tr>
<tr class="memdesc:a80b01b2ceadfaf91cc34988033a1598c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address of the previously registered user data.  <a href="#a80b01b2ceadfaf91cc34988033a1598c">More...</a><br/></td></tr>
<tr class="separator:a80b01b2ceadfaf91cc34988033a1598c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>It can represent object types, funcdefs, typedefs, and enums. To determine which family the type belong to verify the flags. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a532069932de1f584ab52e4c2afacf95e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asITypeInfo::AddRef </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The number of references to this object.</dd></dl>
<p>Call this method when storing an additional reference to the object. </p>

</div>
</div>
<a class="anchor" id="a4ce24b7a0ecd27bb7e34f1fa58c08d29"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool asITypeInfo::DerivesFrom </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classas_i_type_info.html">asITypeInfo</a> *&#160;</td>
          <td class="paramname"><em>objType</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">objType</td><td>The potential parent type. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the type inherits directly or indirectly from the informed type. </dd></dl>

</div>
</div>
<a class="anchor" id="a849e5890b225717b243c73e3d4f38204"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#a5428f0c940201e5f3bbb28304aeb81bc">asDWORD</a> asITypeInfo::GetAccessMask </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The access mask for this type. </dd></dl>

</div>
</div>
<a class="anchor" id="a8722ecc6b7e47491cdb6e442a3bf1ba2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_type_info.html">asITypeInfo</a>* asITypeInfo::GetBaseType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A pointer to the object type that this type derives from.</dd></dl>
<p>This method will only return a pointer in case of script classes that derives from another script class.</p>
<p>This does not increase the reference count of the returned object type. </p>

</div>
</div>
<a class="anchor" id="ae91a1b2080e76a0dcad8106436728314"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asITypeInfo::GetBehaviourByIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#a7e38df5b10ec8cbf2a688f1d114097c5">asEBehaviours</a> *&#160;</td>
          <td class="paramname"><em>outBehaviour</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the behaviour. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">outBehaviour</td><td>Receives the type of the behaviour. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The function of the behaviour, or null on error. </dd></dl>

</div>
</div>
<a class="anchor" id="ad7c3c757cc99df4d40c6b3b44896cb96"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asITypeInfo::GetBehaviourCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The number of behaviours for this type. </dd></dl>

</div>
</div>
<a class="anchor" id="a01fe2f0b68614246a63e52cada374b69"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_type_info.html">asITypeInfo</a>* asITypeInfo::GetChildFuncdef </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The child funcdef matching the index. </dd></dl>

</div>
</div>
<a class="anchor" id="aa9b5a0281ff01d448e55cb10e42ba340"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asITypeInfo::GetChildFuncdefCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The number of child funcdefs declared in the class. </dd></dl>

</div>
</div>
<a class="anchor" id="aa181c094c192e86299b394ebcfa68760"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* asITypeInfo::GetConfigGroup </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The name of the config group, or null if not set. </dd></dl>

</div>
</div>
<a class="anchor" id="abafbb3a12cbd94f56a4f3c1739fd6ada"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_engine.html">asIScriptEngine</a>* asITypeInfo::GetEngine </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A pointer to the engine. </dd></dl>

</div>
</div>
<a class="anchor" id="aaece7c2106dbced04436b52515f1f7ac"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* asITypeInfo::GetEnumValueByIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>outValue</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the enum value. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">outValue</td><td>Receives the value of the enum value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The name of the enum value. </dd></dl>

</div>
</div>
<a class="anchor" id="abe22697bab6560c30c9b613187d6b4d7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asITypeInfo::GetEnumValueCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The number of enum values. </dd></dl>

</div>
</div>
<a class="anchor" id="aca1e08cd395231d30ad78a7ca3fea142"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asITypeInfo::GetFactoryByDecl </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>decl</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">decl</td><td>The declaration of the function </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The matching factory function or null if there are no matches </dd></dl>

</div>
</div>
<a class="anchor" id="a6a8b52fefd309102142ba74621d35714"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asITypeInfo::GetFactoryByIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the factory function. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The factory function or null if the index is invalid. </dd></dl>

</div>
</div>
<a class="anchor" id="a22cb802db08d6f464f6ee12337390d12"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asITypeInfo::GetFactoryCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The number of factory functions for this object. </dd></dl>

</div>
</div>
<a class="anchor" id="a068900ec359ff7fc2ee59a938ffe20ab"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#a5428f0c940201e5f3bbb28304aeb81bc">asDWORD</a> asITypeInfo::GetFlags </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A bit mask with the flags from <a class="el" href="angelscript_8h.html#a855d86fa9ee15b9f75e553ee376b5c7a">asEObjTypeFlags</a>.</dd></dl>
<p>Object types are identified by having the flags <a class="el" href="angelscript_8h.html#a855d86fa9ee15b9f75e553ee376b5c7aa9450e038342b36c745858d2e5ae4b861">asOBJ_REF</a> or <a class="el" href="angelscript_8h.html#a855d86fa9ee15b9f75e553ee376b5c7aa9fc16a8ac0f30f9ff9c6568e0b7be91d">asOBJ_VALUE</a> set.</p>
<p>Enums are identified by having the flag <a class="el" href="angelscript_8h.html#a855d86fa9ee15b9f75e553ee376b5c7aa018e73b8c343fe8f46fa7a7829643ff9">asOBJ_ENUM</a> set.</p>
<p>Funcdefs are identified by having the flag <a class="el" href="angelscript_8h.html#a855d86fa9ee15b9f75e553ee376b5c7aa5b0f6287649893c8a04b43ed1f71a182">asOBJ_FUNCDEF</a> set.</p>
<p>Typedefs are identified by having the flag <a class="el" href="angelscript_8h.html#a855d86fa9ee15b9f75e553ee376b5c7aad9ec544ec0cca5ec329d19bceefadf0c">asOBJ_TYPEDEF</a> set.</p>
<p>Script classes are identified by having the <a class="el" href="angelscript_8h.html#a855d86fa9ee15b9f75e553ee376b5c7aaa82f3ef517372e0db029f7dcfe7f88eb">asOBJ_SCRIPT_OBJECT</a> flag set. Interfaces are identified as a script class with a size of zero.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classas_i_type_info.html#ad965398e393144e87c0436ef865b9b6d">GetSize</a> </dd></dl>

</div>
</div>
<a class="anchor" id="abf4e686097f0c485e6dcd330fe47f91e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asITypeInfo::GetFuncdefSignature </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A pointer to the function description interface, or null if not a funcdef type.</dd></dl>
<p>This does not increment the reference count of the returned function interface. </p>

</div>
</div>
<a class="anchor" id="a320141f6c331a9e49334de2576c725f7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_type_info.html">asITypeInfo</a>* asITypeInfo::GetInterface </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The interface index. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the interface type. </dd></dl>

</div>
</div>
<a class="anchor" id="a47a4bdc2462b38a5659c3cb96e61c649"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asITypeInfo::GetInterfaceCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The number of interfaces implemented by this type. </dd></dl>

</div>
</div>
<a class="anchor" id="a80c61bb4d018647561ce3af24fedf65b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asITypeInfo::GetMethodByDecl </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>decl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>getVirtual</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">decl</td><td>The method signature. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">getVirtual</td><td>Set to true if the virtual method or the real method should be retrieved. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The method or null on error.</dd></dl>
<p>This method should be used to retrieve the script method for the object that you wish to execute. The method is then sent to the context's <a class="el" href="classas_i_script_context.html#a43976f42dfc6c1af23e132d36265173a">Prepare</a> method.</p>
<p>The method will find the script method with the exact same declaration. </p>

</div>
</div>
<a class="anchor" id="a235262cb0bacaf1f160e5ac5156db4e8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asITypeInfo::GetMethodByIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>getVirtual</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the method. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">getVirtual</td><td>Set to true if the virtual method or the real method should be retrieved. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The method or null on error.</dd></dl>
<p>This method should be used to retrieve the script method for the object that you wish to execute. The method is then sent to the context's <a class="el" href="classas_i_script_context.html#a43976f42dfc6c1af23e132d36265173a">Prepare</a> method.</p>
<p>By default this returns the virtual method for script classes. This will allow you to call the virtual method on classes, and rely on the polymorphism to call the correct implementation. If you wish to inspect the real method, then you should set the second parameter to false to retrieve the real method. </p>

</div>
</div>
<a class="anchor" id="af3febbb10e7e85425f0960aad892f9b8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asITypeInfo::GetMethodByName </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>getVirtual</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the method. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">getVirtual</td><td>Set to true if the virtual method or the real method should be retrieved. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Tthe method or null in case of error</dd></dl>
<p>This method should be used to retrieve the script method for the object that you wish to execute. The method is then sent to the context's <a class="el" href="classas_i_script_context.html#a43976f42dfc6c1af23e132d36265173a">Prepare</a> method. </p>

</div>
</div>
<a class="anchor" id="a50877d3602e460e784df4f611ae6f360"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asITypeInfo::GetMethodCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The number of methods for this object. </dd></dl>

</div>
</div>
<a class="anchor" id="a3e08d6c6ee1957c421bb297f94a81d54"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_module.html">asIScriptModule</a>* asITypeInfo::GetModule </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The module where the type is declared.</dd></dl>
<p>The returned value can be null if the module doesn't exist anymore. </p>

</div>
</div>
<a class="anchor" id="a49f83d3a9158331029324bfbe9ae46a8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* asITypeInfo::GetName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A null terminated string with the name of the object type. </dd></dl>

</div>
</div>
<a class="anchor" id="a90b16019d2569d6c721130f3049786a2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* asITypeInfo::GetNamespace </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The namespace of the type, or null if not defined.</dd></dl>
<p>If the namespace is not defined it means that this is a child type. </p>

</div>
</div>
<a class="anchor" id="aa2836268d01f3a4424263190b57d9b04"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_type_info.html">asITypeInfo</a>* asITypeInfo::GetParentType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The parent type if this is a child type. </dd></dl>

</div>
</div>
<a class="anchor" id="a99667684c3465389bc9ae08dfdcd8ab9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asITypeInfo::GetProperty </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>typeId</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>isPrivate</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>isProtected</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>offset</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>isReference</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#a5428f0c940201e5f3bbb28304aeb81bc">asDWORD</a> *&#160;</td>
          <td class="paramname"><em>accessMask</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the property </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">name</td><td>The name of the property </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">typeId</td><td>The type of the property </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">isPrivate</td><td>Whether the property is private or not </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">isProtected</td><td>Whether the property is protected or not </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">offset</td><td>The offset into the object where the property is stored </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">isReference</td><td>True if the property is not stored inline </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">accessMask</td><td>The access mask of the property </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A negative value on error </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">asINVALID_ARG</td><td>The <em>index</em> is out of bounds </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a01d086e1bb97aa56a7b128c00c174ac6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asITypeInfo::GetPropertyCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The number of member properties of the script object. </dd></dl>

</div>
</div>
<a class="anchor" id="a9e6916f51f09970d268378aef9601349"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* asITypeInfo::GetPropertyDeclaration </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>includeNamespace</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the property </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">includeNamespace</td><td>Set to true if the namespace should be included in the declaration. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The declaration of the property, or null on error. </dd></dl>

</div>
</div>
<a class="anchor" id="ad965398e393144e87c0436ef865b9b6d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asITypeInfo::GetSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The number of bytes necessary to store instances of this type.</dd></dl>
<p>Application registered reference types doesn't store this information, as the script engine doesn't allocate memory for these itself. </p>

</div>
</div>
<a class="anchor" id="a8e947504f268c7f0e1c26973dd7d3837"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_type_info.html">asITypeInfo</a>* asITypeInfo::GetSubType </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>subTypeIndex</em> = <code>0</code></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">subTypeIndex</td><td>The zero based index of the template sub type. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The type info of the template sub type, or null if the template subtype is a primitive. </dd></dl>

</div>
</div>
<a class="anchor" id="a1657d5094afa550c93d8cc74c216c3c6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asITypeInfo::GetSubTypeCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The number of template sub types. </dd></dl>

</div>
</div>
<a class="anchor" id="aa1a56809ce5c340364ecd8beac508eb4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asITypeInfo::GetSubTypeId </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>subTypeIndex</em> = <code>0</code></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">subTypeIndex</td><td>The zero based index of the template sub type. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The type id of the template sub type, or a negative value on error. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">asERROR</td><td>The type is not a template type. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aca9edb046026db68d255e226dd419b3a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asITypeInfo::GetTypedefTypeId </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The type id that the typedef represents. </dd></dl>

</div>
</div>
<a class="anchor" id="a06698aa9dcc6dc315ec2651fc70dbe19"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asITypeInfo::GetTypeId </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The type id for the object type. </dd></dl>

</div>
</div>
<a class="anchor" id="a80b01b2ceadfaf91cc34988033a1598c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void* asITypeInfo::GetUserData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#a76fc6994aba7ff6c685a62c273c057e3">asPWORD</a>&#160;</td>
          <td class="paramname"><em>type</em> = <code>0</code></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>An identifier used to identify which user data to get. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The pointer to the user data. </dd></dl>

</div>
</div>
<a class="anchor" id="a19bacd881681ee398de95a076f427726"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool asITypeInfo::Implements </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classas_i_type_info.html">asITypeInfo</a> *&#160;</td>
          <td class="paramname"><em>objType</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">objType</td><td>The interface type. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the type implements the informed interface type. </dd></dl>

</div>
</div>
<a class="anchor" id="a73b9059dc335b6fde8c7bbf4b1b95914"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asITypeInfo::Release </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The number of references to this object.</dd></dl>
<p>Call this method when you will no longer use the references that you own. </p>

</div>
</div>
<a class="anchor" id="a5e8ea071f1c1f3b7c6dfc1950bec73f4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void* asITypeInfo::SetUserData </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#a76fc6994aba7ff6c685a62c273c057e3">asPWORD</a>&#160;</td>
          <td class="paramname"><em>type</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>A pointer to the user data. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>An identifier used to identify which user data to set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previous pointer stored in the object type.</dd></dl>
<p>This method allows the application to associate a value, e.g. a pointer, with the object type instance. Multiple different values can be defined where the type argument identifies which is referred to.</p>
<p>The user data types identifiers between 1000 and 1999 are reserved for use by official add-ons.</p>
<p>Optionally, a callback function can be <a class="el" href="classas_i_script_engine.html#afa31e7c28c63a2c876d8e08305cf5d75">registered</a> to clean up the user data when the object type is destroyed. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="angelscript_8h.html">angelscript.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classas_i_type_info.html">asITypeInfo</a></li>
    <li class="footer">Generated on Sun Dec 18 2016 12:35:32 for AngelScript by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3.1 </li>
  </ul>
</div>
</body>
</html>
